package com.xxx.service;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.xxx.common.dto.Page;
import com.xxx.common.dto.Pagination;
import com.xxx.model.SysRoleMenu;

public interface SysRoleMenuService {

	/**
	 * 保存或者更新
	 * @param sysRoleMenu
	 * @return
	 */
	public long saveOrUpdate(SysRoleMenu sysRoleMenu) throws Exception;
		
	/**
	 * 删除
	 * @param id
	 * @return
	 */
	public boolean delete(long id) throws Exception;
	
	/**
	 * 获取个数
	 * @param whereMap
	 * @return
	 * @throws Exception 
	 */
	public int getCount(Map<String, Object> whereMap) throws Exception;
	
	/**
	 * 根据id获取
	 * @param id
	 * @return
	 */
	public SysRoleMenu getEntity(long id) throws Exception;
	
	/**
	 * 获取所有 
	 * @param whereMap 查询条件
	 * @return
	 */
	public List<SysRoleMenu> getList(Map<String, Object> whereMap) throws Exception;
	
	/**
	 * 获取集合,带分页条件
	 * @param whereMap 查询条件
	 * @param pagination 分页,排序
	 * @return
	 */
	public List<SysRoleMenu> getList(Map<String, Object> whereMap,Pagination pagination) throws Exception;
	
	/**
	 * 获取集合,带分页参数
	 * @param whereMap 查询条件
	 * @param pagination 分页,排序
	 * @return
	 */
	public Page<SysRoleMenu> getPage(Map<String, Object> whereMap,Pagination pagination) throws Exception;
	
	/**
	 * 权限 Map<menuid,id>
	 * @param roleid 权限id
	 * @return
	 */
	public Map<Long, Long> getRoleMenuMap(long roleid);
	
	/**
	 * 获取用户 权限下的所有的菜单
	 * set<menuid>
	 * @param userid
	 * @return
	 */
	public Set<Long> getUserRoleMenu(long userid);
}
